API: x11: Add GDK_POINTER_TO_XID() and GDK_XID_TO_POINTER()
authorBenjamin Otte <otte@redhat.com>
Fri, 28 Jan 2011 14:11:44 +0000 (15:11 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 28 Jan 2011 16:06:07 +0000 (17:06 +0100)
Previously people used GDK_GPOINTER_TO_NATIVE_WINDOW() for this, but
native windows are going away, so we need a replacement.

docs/reference/gdk/gdk3-sections.txt
gdk/x11/gdkx11utils.h

index 459c1c242c22d8885f544941b388490d54b37d95..a0627079dfe2dcc41f0e28c947346cee06b8acc2 100644 (file)
@@ -934,6 +934,8 @@ GDK_SCREEN_XNUMBER
 GDK_SCREEN_XSCREEN
 GDK_CURSOR_XCURSOR
 GDK_CURSOR_XDISPLAY
+GDK_POINTER_TO_XID
+GDK_XID_TO_POINTER
 gdk_x11_lookup_xdisplay
 gdk_x11_get_server_time
 gdk_x11_display_get_user_time
index f00ee5b6533bbbe6d24eac4b31cffa1975b275f5..de7ffd36cff25ac24fef74fcf782f403595339aa 100644 (file)
@@ -52,6 +52,23 @@ Display *gdk_x11_get_default_xdisplay     (void);
 #define GDK_ROOT_WINDOW()             (gdk_x11_get_default_root_xwindow ())
 #endif
 
+/**
+ * GDK_XID_TO_POINTER:
+ *
+ * Converts an XID into a @gpointer. This is useful with data structures
+ * that use pointer arguments such as #GHashTable. Use GDK_POINTER_TO_XID()
+ * to convert the argument back to an XID.
+ */
+#define GDK_XID_TO_POINTER(pointer) GUINT_TO_POINTER(pointer)
+
+/**
+ * GDK_POINTER_TO_XID:
+ *
+ * Converts a @gpointer back to an XID that was previously converted
+ * using GDK_XID_TO_POINTER().
+ */
+#define GDK_POINTER_TO_XID(pointer) GPOINTER_TO_UINT(pointer)
+
 #ifndef GDK_MULTIHEAD_SAFE
 void          gdk_x11_grab_server    (void);
 void          gdk_x11_ungrab_server  (void);